package cn.sc.summer.mybatis.binarytree.config;

import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * 类名：二叉树修改配置项
 *
 * @author a-xin
 * @date 2024/5/27 10:36
 */
@Data
@Accessors(chain = true)
public class BinaryTreeConfig<T> implements Serializable {

    private static final long serialVersionUID = -6306806910289247396L;

    /**
     * 主键ID字段名称
     */
    private String id = "id";

    /**
     * 父级ID字段名称
     */
    private String pId = "pId";

    /**
     * 顶层元素id值,必须设置，否则报错
     */
    private T topId;

    /**
     * 左值字段名称
     */
    private String lft = "lft";

    /**
     * 右值字段名称
     */
    private String rgt = "rgt";

    /**
     * 获取默认二叉树结构配置项，顶层id为 -1
     *
     * @return 默认二叉树结构配置项
     */
    public static BinaryTreeConfig<String> getDefaultConfig() {
        BinaryTreeConfig<String> config = new BinaryTreeConfig<>();
        config.setTopId("-1");
        return config;
    }

}
